﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//https://leetcode.cn/problems/array-partition/submissions/
//561. 数组拆分 --给定长度为 2n 的整数数组 nums ，你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ，使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。
//想法：先排序，题目要求最大总和
// 假设拍完序数组为： 1,2,3,4,5,6,7,8
// 两两为一组，这样就可以求得最大值

//void swap(int* a, int* b)
//{
//    int tmp = *a;
//    *a = *b;
//    *b = tmp;
//}
//
//void QuickSort(int* a, int left, int right)
//{
//    if (left >= right)
//        return;
//    int prev = left;
//    int curr = left + 1;
//    int k = left;
//    while (curr <= right)
//    {
//        if (a[curr] < a[k] && ++prev != curr)
//            swap(&a[curr], &a[prev]);
//        curr++;
//    }
//    swap(&a[k], &a[prev]);
//    QuickSort(a, left, prev - 1);
//    QuickSort(a, prev + 1, right);
//}
//
//int arrayPairSum(int* nums, int numsSize) {
//    QuickSort(nums, 0, numsSize - 1);
//    int sum = 0;
//    for (int i = 0; i < numsSize; i += 2)
//    {
//        sum += nums[i];
//    }
//    return sum;
//}


//https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/
//167. 两数之和 II - 输入有序数组

//#include <stdlib.h>
//int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {
//    int* a = malloc(sizeof(int) * 2);
//    int index1 = 0, index2 = 0;
//    int flag = 0;
//
//    for (int i = 0; i < numbersSize; i++)
//    {
//        index1 = i;
//        for (int j = i + 1; j < numbersSize; j++)
//        {
//            index2 = j;
//            if (numbers[i] + numbers[j] == target)
//            {
//                a[0] = i + 1;
//                a[1] = j + 1;
//                flag = 1;
//                break;
//            }
//
//        }
//        if (flag == 1)
//            break;
//    }
//    *returnSize = 2;
//    return a;
//
//}
//
//int main()
//{
//    int num[] = { -1,0};
//    int target = -1;
//    int k = 0;
//    int* a = twoSum(num, sizeof(num) / sizeof(num[0]), target, &k);
//    for (int i = 0; i < k; i++)
//    {
//        printf("%d ",a[i]);
//    }
//    free(a);
//    return 0;
//}


//https://leetcode.cn/problems/remove-element/
// 27. 移除元素
//int removeElement(int* nums, int numsSize, int val) {
//    int curr = 0;
//    int k = 0;
//    while (curr < numsSize)
//    {
//        if (nums[curr] != val)
//        {
//            nums[k++] = nums[curr];
//        }
//        curr++;
//    }
//    return k;
//}


//https://leetcode.cn/leetbook/read/array-and-string/cd71t/
//485. 最大连续 1 的个数
//int findMaxConsecutiveOnes(int* nums, int numsSize) {
//    int curr = 0;
//    int k = 0, maxk = 0;
//    while (curr < numsSize)
//    {
//        if (nums[curr] == 1)
//            k++;
//        else
//        {
//            if (k > maxk)
//            {
//                maxk = k;
//            }
//            k = 0;
//        }
//        curr++;
//    }
//    return maxk > k ? maxk : k;
//}
//int main()
//{
//    int a[] = { 1,1,0,1,1,1 };
//    printf("%d", findMaxConsecutiveOnes(a, sizeof(a) / sizeof(a[0])));
//    return 0;
//}



//https://pintia.cn/problem-sets/994805046380707840/exam/problems/1111914599412858880
//L1-059 敲笨钟
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    char str[120] = { 0 };
//    char tmp[] = "ong";
//    int n = 0;
//    scanf("%d", &n);
//    getchar();
//    for (int i = 0; i < n; i++)
//    {
//        gets(str);
//        char* end1 = strchr(str, ',');
//        char* end2 = strchr(str, '.');
//        int k = 0;
//        for (int i = 3; i > 0; i--)
//        {
//            if (*(end1 - i) == tmp[k] && *(end2 - i) == tmp[k])
//                k++;
//        }
//        if (tmp[k] != '\0')
//        {
//            printf("Skipped\n");
//            continue;
//        }
//        int j = 0;
//        while (end2)
//        {
//            if (*end2 == ' ')
//                j++;
//            if (j == 3)
//                break;
//            end2--;
//        }
//        strcpy(end2 + 1, "qiao ben zhong.");
//        printf("%s\n", str);
//        memset(str, 0, sizeof(str));
//    }
//    return 0;
//}


//https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805076512587776
//L1-054 福到了
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    char c = 0;
//    int n = 0;
//    scanf("%c %d", &c, &n);
//    char board[n][n];
//    int flag = 0;
//    for (int i = 0; i < n; i++)
//    {
//        getchar();
//        for (int j = 0; j < n; j++)
//        {
//            scanf("%c", &board[i][j]);
//        }
//    }
//    char show[n][n];
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < n; j++)
//        {
//            if (board[i][j] != ' ')
//                show[n - 1 - i][n - 1 - j] = c;
//            else
//            {
//                show[n - 1 - i][n - 1 - j] = ' ';
//                if (board[n - 1 - i][n - 1 - j] != ' ')
//                    flag = 1;
//            }
//
//        }
//    }
//    if (!flag)
//        printf("bu yong dao le\n");
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < n; j++)
//        {
//            printf("%c", show[i][j]);
//        }
//        printf("\n");
//    }
//    return 0;
//}